繼承的細節 & access level & polymorphism
[呼叫method]
當我呼叫method時,會叫出最接近的method,也就是說,越低階的priority越高
[使用method]
要確定subclass是superclass的一種更特定的型態才行,像是:狗是動物的一種,那麼狗就可以繼承自動物;這樣子定義的繼承是單向的,也就是說你不能說"動物是狗的一種",動物更不可以說是狗的一種特定型態
[access level/存取權限]
->誰可以接觸什麼的控制權
->由左往右,限制越少
private default protected public
->public的method和instance variable是可以被繼承的
->private的method或instance variable則不會也不可以被繼承
[polymorphism]
可用宣告乘superclass type的object reference指向他的subclass object;換言之,可用subtype填補任何需要放入supertype的位置,ex.
//一開始先宣告了一個保存Pet型別物件的陣列
Pet[] myPet = new Pet[2];
//可在此陣列中放Pet的subclass object進去
myPet[0] = new Cat();
myPet[1] = new Dog();
myPet[2] = new Fish();
for(int i= 0; i< myPet.length; i++){
//還可把陣列元素叫來當成Pet來操作
myPet[i].sleep();
}